package com.sdhs.system.domain;

import java.math.BigDecimal;
import java.util.List;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sdhs.common.annotation.Excel;


/**
 * 合同主表对象 gc_contract
 *
 * @author add
 * @date 2025-04-04
 */
@Data
public class GcContract
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;


    /** 合同编号 */
    @Excel(name = "合同编号")
    private String num;

    /** 合同归属单位 */
    @Excel(name = "合同归属单位")
    private String companyName;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String name;

    /** 合同大类 */
    @Excel(name = "合同大类")
    private String mainType;

    /** 合同小类 */
    @Excel(name = "合同小类")
    private String subType;

    /** 收支类型 */
    @Excel(name = "收支类型")
    private String incomeExpenseType;

    /** 合同金额(含税),元 */
    @Excel(name = "合同金额(含税),元")
    private BigDecimal money;

    /** 签订日期 */
    @Excel(name = "签订日期")
    private String signDate;

    /** 是否补充合同;1:是;0:否 */
    @Excel(name = "是否补充合同;1:是;0:否")
    private String isSupplementaryContract;

    @Excel(name = "合同负责人")
    private String contractManager;

    /** 变更后总金额(含税),元 */
    @Excel(name = "合同总金额（不含税）")
    private BigDecimal notMoney;


    @Excel(name = "合同变更后总金额（不含税）")
    private BigDecimal notChangeMoney;

    @Excel(name = "税率")
    private String taxRate;

    @Excel(name = "税额")
    private BigDecimal taxAmount;

    /** 主合同编号 */
    @Excel(name = "主合同编号")
    private String originalContractNum;
    /*主合同编号集合*/
    private List<String> originalContractNums;

    /** 合同文本路径 */
    private String fileUrl;

    /** 变更后总金额(含税),元 */
    @Excel(name = "变更后总金额(含税),元")
    private BigDecimal changeMoney;

    /** 总金额币种代码 */
    @Excel(name = "总金额币种代码")
    private String currencyCode;

    /** 总金额币种名称 */
    @Excel(name = "总金额币种名称")
    private String currencyName;

    /** 传过来的合同id */
    @Excel(name = "传过来的合同id")
    private String contractId;

    /** 合同归属单位Id */
    @Excel(name = "合同归属单位Id")
    private String companyId;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDelete;

    /** 组装后的相对方数据 */
    private String bussName;
    /** 合同id集合 */
    private List<String> contractIds;
    /**收支类型  */
    private List<String> expenseTypes;

    private List<GcContract> children;

    private List<GcContractParty> participants;

    private String deptId;
    private String ancestors;
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("num", getNum())
            .append("companyName", getCompanyName())
            .append("name", getName())
            .append("mainType", getMainType())
            .append("subType", getSubType())
            .append("incomeExpenseType", getIncomeExpenseType())
            .append("money", getMoney())
            .append("signDate", getSignDate())
            .append("isSupplementaryContract", getIsSupplementaryContract())
            .append("originalContractNum", getOriginalContractNum())
            .append("changeMoney", getChangeMoney())
            .append("currencyCode", getCurrencyCode())
            .append("currencyName", getCurrencyName())
            .append("contractId", getContractId())
            .append("participants", getParticipants())
            .append("children", getChildren())
            .append("isDelete", getIsDelete())
            .append("bussName", getBussName())
            .append("contractIds", getContractIds())
            .toString();
    }
}
